package com.lihua.project.system.article.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lihua.framework.aspectj.lang.annotation.Excel;
import com.lihua.framework.web.domain.BaseEntity;

/**
 * 文章帖子对象 article
 *
 * @author lihua
 * @date 2022-04-06
 */
@EqualsAndHashCode
public class Article extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 发表用户 */
    @Excel(name = "发表用户")
    private Long userId;

    /** 文章标题 */
    @Excel(name = "文章标题")
    private String articleTitle;

    /** 发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date articleNewstime;

    /** 文章摘要 */
    @Excel(name = "文章摘要")
    private String articleSummary;

    /** 略缩图 */
    @Excel(name = "略缩图")
    private String articleThumbnail;

    /** 文章内容html格式 */
    @Excel(name = "文章内容html格式")
    private String articleContent;

    /** 文章内容Markdown格式 */
    @Excel(name = "文章内容Markdown格式")
    private String articleContentMd;

    /** 作者 */
    @Excel(name = "作者")
    private String articleAuthor;

    /** 编辑 */
    @Excel(name = "编辑")
    private String articleEdit;

    /** 文章类型0原创1转载 */
    @Excel(name = "文章类型0原创1转载")
    private Long articleType;

    /** 是否开启评论 0开启1不开启 */
    @Excel(name = "是否开启评论 0开启1不开启")
    private Long articleComment;

    /** 文章状态 0：审核中，1：草稿，2：已发布（审核通过），3：未通过，4、回收（删除） */
    @Excel(name = "文章状态 0已发布1草稿2回收站")
    private Long articleStatus;

    /** post文章 page页面 */
    @Excel(name = "post文章 page页面")
    private String articlePost;

    /** 文章最后修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "文章最后修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date articleUpdatetime;

    /** 文章路径 */
    @Excel(name = "文章路径")
    private String articleUrl;

    /** 访问量统计 */
    @Excel(name = "访问量统计")
    private Long articleViews;

    /** 评论数 */
    @Excel(name = "评论数")
    private Long articleCommentNum;

    /** 点赞数 */
    @Excel(name = "点赞数")
    private Long articleLikeNum;

    /** 收藏数 */
    @Excel(name = "收藏数")
    private Long artilceCollectNum;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setArticleTitle(String articleTitle)
    {
        this.articleTitle = articleTitle;
    }

    public String getArticleTitle()
    {
        return articleTitle;
    }
    public void setArticleNewstime(Date articleNewstime)
    {
        this.articleNewstime = articleNewstime;
    }

    public Date getArticleNewstime()
    {
        return articleNewstime;
    }
    public void setArticleSummary(String articleSummary)
    {
        this.articleSummary = articleSummary;
    }

    public String getArticleSummary()
    {
        return articleSummary;
    }
    public void setArticleThumbnail(String articleThumbnail)
    {
        this.articleThumbnail = articleThumbnail;
    }

    public String getArticleThumbnail()
    {
        return articleThumbnail;
    }
    public void setArticleContent(String articleContent)
    {
        this.articleContent = articleContent;
    }

    public String getArticleContent()
    {
        return articleContent;
    }
    public void setArticleContentMd(String articleContentMd)
    {
        this.articleContentMd = articleContentMd;
    }

    public String getArticleContentMd()
    {
        return articleContentMd;
    }
    public void setArticleAuthor(String articleAuthor)
    {
        this.articleAuthor = articleAuthor;
    }

    public String getArticleAuthor()
    {
        return articleAuthor;
    }
    public void setArticleEdit(String articleEdit)
    {
        this.articleEdit = articleEdit;
    }

    public String getArticleEdit()
    {
        return articleEdit;
    }
    public void setArticleType(Long articleType)
    {
        this.articleType = articleType;
    }

    public Long getArticleType()
    {
        return articleType;
    }
    public void setArticleComment(Long articleComment)
    {
        this.articleComment = articleComment;
    }

    public Long getArticleComment()
    {
        return articleComment;
    }
    public void setArticleStatus(Long articleStatus)
    {
        this.articleStatus = articleStatus;
    }

    public Long getArticleStatus()
    {
        return articleStatus;
    }
    public void setArticlePost(String articlePost)
    {
        this.articlePost = articlePost;
    }

    public String getArticlePost()
    {
        return articlePost;
    }
    public void setArticleUpdatetime(Date articleUpdatetime)
    {
        this.articleUpdatetime = articleUpdatetime;
    }

    public Date getArticleUpdatetime()
    {
        return articleUpdatetime;
    }
    public void setArticleUrl(String articleUrl)
    {
        this.articleUrl = articleUrl;
    }

    public String getArticleUrl()
    {
        return articleUrl;
    }
    public void setArticleViews(Long articleViews)
    {
        this.articleViews = articleViews;
    }

    public Long getArticleViews()
    {
        return articleViews;
    }
    public void setArticleCommentNum(Long articleCommentNum)
    {
        this.articleCommentNum = articleCommentNum;
    }

    public Long getArticleCommentNum()
    {
        return articleCommentNum;
    }
    public void setArticleLikeNum(Long articleLikeNum)
    {
        this.articleLikeNum = articleLikeNum;
    }

    public Long getArticleLikeNum()
    {
        return articleLikeNum;
    }
    public void setArtilceCollectNum(Long artilceCollectNum)
    {
        this.artilceCollectNum = artilceCollectNum;
    }

    public Long getArtilceCollectNum()
    {
        return artilceCollectNum;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("articleTitle", getArticleTitle())
                .append("articleNewstime", getArticleNewstime())
                .append("articleSummary", getArticleSummary())
                .append("articleThumbnail", getArticleThumbnail())
                .append("articleContent", getArticleContent())
                .append("articleContentMd", getArticleContentMd())
                .append("articleAuthor", getArticleAuthor())
                .append("articleEdit", getArticleEdit())
                .append("articleType", getArticleType())
                .append("articleComment", getArticleComment())
                .append("articleStatus", getArticleStatus())
                .append("articlePost", getArticlePost())
                .append("articleUpdatetime", getArticleUpdatetime())
                .append("articleUrl", getArticleUrl())
                .append("articleViews", getArticleViews())
                .append("articleCommentNum", getArticleCommentNum())
                .append("articleLikeNum", getArticleLikeNum())
                .append("artilceCollectNum", getArtilceCollectNum())
                .toString();
    }
}
